I. Field
The present disclosure relates generally to electronics, and more specifically to techniques for securely booting an electronics device from an external storage device.
II. Background
An electronics device (e.g., a cellular phone) typically operates based on software and/or firmware that control the hardware within the device and support various designed functions. The software and/or firmware may be stored in an external non-volatile memory, loaded into a faster internal memory and/or an external volatile memory during power up, and executed by a processor. The external and internal memories are typically selected to provide the desired storage capacity and access capability and to be as economical as possible.
In many instances, it is desirable or necessary to ascertain whether the software and/or firmware retrieved from the external memory are valid and authorized for execution. For example, different software versions with different features may be available for different levels of service subscription. It may then be desirable to prevent an electronics device with a basic subscription from loading and executing a software version with enhanced functionality intended for a premium subscription. As another example, it may be desirable to prevent tampering with the software and/or firmware to enable features that are not authorized. In addition, far worse consequences such as network destruction and/or blackout may be caused by hostile parties.